package br.com.scitv.tela;


import java.awt.event.KeyEvent;

import br.com.scitv.SCITV;
import br.com.scitv.action.SCITVAction;
import br.com.scitv.bean.Produto;

import com.sun.dtv.lwuit.Form;
import com.sun.dtv.lwuit.Image;
import com.sun.dtv.lwuit.Label;
import com.sun.dtv.lwuit.geom.Dimension;
import com.sun.dtv.ui.event.RemoteControlEvent;
import com.sun.dtv.ui.event.UserInputEvent;

public class TelaApresentaProduto extends Tela
{
	private Label fundo;
	private Produto	produto;
	
	// dados do produto
	private Label imagem;
	private Label nome;
	private Label descricao;
	private Label valor;
	private SCITVAction action;
	// fim dados do produto
	private Form form;
	
	public TelaApresentaProduto(SCITVAction action) {
		this.action = action;
		fundo = new Label();
		form = new Form();
	}
	
	public void addComponentes(){
		dtvcontainer.addComponent(form);
		
		try {
			fundo.setIcon(Image.createImage(SCITV.getPropiedadePathImagem("img.inicial")));
		} catch (Exception e) {		
			System.out.println("Error while loading image " +  e.getMessage());
		}

		fundo.setX( borda );
		fundo.setY( borda );
		fundo.setSize( new Dimension( planeSetup.getScreenResolution().getWidth()/100*30,  planeSetup.getScreenResolution().getHeight() ) );
		form.addComponent(fundo);
		
		if(produto != null){
			try {
				addComponentesProduto();
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		form.repaint();
	}
	
	private void addComponentesProduto() throws Exception{
		int posicaoY = 0;
		int distanciaY = 15;
		borda+=5;
		
		Label lbProduto = new Label();
		lbProduto.setText("Produto:");
		lbProduto.setX(borda);
		lbProduto.setY(-20);
		form.addComponent(lbProduto);
		posicaoY = lbProduto.getY()+distanciaY+50;
		
		imagem = new Label();
		imagem.setIcon(Image.createImage( produto.getImagem()) );
		imagem.setX(borda);
		imagem.setY(posicaoY);
		imagem.setSize(new Dimension(200,100));
		form.addComponent(imagem);
		posicaoY += distanciaY+50;
		
		nome = new Label();
		nome.setText(produto.getNome());
		nome.setX(borda);
		nome.setY(posicaoY);
		form.addComponent(nome);
		posicaoY += distanciaY;
		
		descricao = new Label();
		descricao.setText(produto.getDescricao());
		descricao.setX(borda);
		descricao.setY(posicaoY);
		form.addComponent(descricao);
		posicaoY += distanciaY;
		
		valor = new Label();
		valor.setText("R$"+Float.toString(produto.getValor()) );
		valor.setX(borda);
		valor.setY(posicaoY);
		form.addComponent(valor);
		posicaoY += distanciaY*5;
		
		
		//***************************//
		/*  Botões Vermelho e Azul   */
		Label botaoAzul = new Label();
		botaoAzul.setIcon(Image.createImage(SCITV.getPropiedadePathImagem("img.botao.azul")));
		botaoAzul.setX(borda);
		botaoAzul.setY(posicaoY);
		botaoAzul.setSize( new Dimension(50, 50) );
		form.addComponent(botaoAzul);
		
		Label botaoVermelho = new Label();
		botaoVermelho.setIcon(Image.createImage(SCITV.getPropiedadePathImagem("img.botao.vermelho")));
		botaoVermelho.setX(borda + botaoAzul.getWidth()+30 );
		botaoVermelho.setY(posicaoY);
		botaoVermelho.setSize( new Dimension(50,50) );
		form.addComponent(botaoVermelho);
		
		Label continuar = new Label();
		continuar.setText("Continuar" );
		continuar.setX(borda);
		continuar.setY(posicaoY+10);
		form.addComponent(continuar);
		
		Label cancelar = new Label();
		cancelar.setText("Cancelar" );
		cancelar.setX(borda + botaoAzul.getWidth()+30);
		cancelar.setY(posicaoY+10);
		form.addComponent(cancelar);
	}

	public Produto getProduto() {
		return produto;
	}
	public void setProduto(Produto produto) {
		this.produto = produto;
	}

	public void userInputEventReceived(UserInputEvent inputEvent) {
		com.sun.dtv.ui.event.KeyEvent event = (com.sun.dtv.ui.event.KeyEvent) inputEvent;

		if(event.getID() == KeyEvent.KEY_RELEASED){
			return;
		}

		switch(event.getKeyCode()){
		case RemoteControlEvent.VK_COLORED_KEY_3:
			form.removeAll();
			form.repaint();
			action.comprarProduto(produto);
			break;
		case RemoteControlEvent.VK_COLORED_KEY_0:
			form.removeAll();
			form.repaint();
			action.iniciar();
			break;
		}
	}

}
